## Executável

- Link para o executável da aplicação : Batalha Naval

## Código Fonte

- Link para a pasta source

## Descrição dos módulos do problema

- ### BN

  implementação

  Este módulo mostra o menu inicial onde o utilizador pode escolher se quer jogar, ver as regras, saber mais sobre o programa ou sair.

  Fluxograma

###

- ### Menu

  definição implementação

  Neste módulo estão as funções utilizadas para fazer o menu:

  - void linha(int largura, char limite) - Desenha uma linha com o caractere “limite” de tamanho “largura”.

Fluxograma

- void interior(int largura, char limite, char fundo) - Desenha uma linha com “largura” caracteres, em que o primeiro e o último são “limite” e os restantes “fundo”.

Fluxograma

- void caixa(int largura, int altura, char limite, char fundo) - Utiliza as funções anteriores para desenhar uma caixa com dimensão “largura” x “altura” com o caractere “limite” na fronteira e o caractere “fundo” no espaço interior.

Fluxograma

- void desenhaMenu() - Desenha os barcos com caracteres, desenha a caixa e imprime o texto com as opções disponíveis.

- char escolheMenu() - Desenha o menu e solicita ao utilizador que escolha uma opção válida.

- ### Jogo

  definição implementação

  Módulo que faz o jogo:

  - void fazjogo() - Função que faz o jogo recorrendo a funções do módulo Bibliojogo.

  Fluxograma

- ### Bibliojogo

  definição implementação

  Neste módulo estão as funções utilizadas para fazer o jogo:

  - void preenche(char m[][DIM], int nlinhas, int ncolunas) -Função que preenche os tabuleiros com o caractere "."

  Fluxograma

  - void preenchefim(char m[][DIM], char a[][DIM], char b[][DIM], int nlinhas, int ncolunas) - Função que preenche o tabuleiro que aparece no final.

  Fluxograma

  - void mostra_tabuleiro(char m[][DIM], int nlinhas, int ncolunas) - Função que mostra os tabuleiros.

Fluxograma

- void colocanavios(char m[][DIM], int dimbarco) - Função que coloca toda a frota no tabuleiro.

Fluxograma

- int valida(char m[][DIM], int linha, int coluna, char direccao, int dim_barco) - Função que verifica as posições válidas para os barcos.

Fluxograma

- void ganhou() - Função que desenha o ecrã que aparece se o utilizador afundar os barcos todos.

- ### Regras

  definição implementação

  Módulo que mostra as regras do jogo.

  - void mostraregras() - Função que mostra as regras e faz uma caixa à volta utilizando a função caixa do módulo Menu.

- ### Sair

  definição implementação

  - sai(void) - Função que pergunta se o utilizador quer sair e se sim mostra o ecrã de despedida.

  Fluxograma

###

- ### Sobre

  definição implementação

  Módulo que mostra as regras do jogo.

  - void mostrasobre() - Função que mostra as informações sobre o trabalho e faz uma caixa à volta utilizando a função caixa do módulo Menu.